With increasing memory speeds, memory systems are required to have precise timing. However, along with increasing speeds, other factors can convolute the timing process. For example, increasing speeds can narrow the eye, while changing thermal conditions can cause the eye to drift. The eye is defined as having two edges and data between the two edges can be latched and is considered valid, while any data outside the two edges is regarded as invalid. A range timing from the beginning to the end of valid data is referred to as the valid data eye.